هدایت کاربر به مسیر خاص بعد از نمایش پیغام گرافیکی توسط sweet alert
سلام. من میخوام اگر مدل معتبر بود پیغام گرافیکی با پلاگین Sweet Alert نمایش داده بشه و با کلیک روی اوکی به صفحه دیگر برود.
من تا حدودی کد رو نوشتم ولی کامل درست عمل نمیکنه. مثلا شرط من در ویو if (ViewData.ModelState.IsValid)
درست عمل نمیکنه و من در اسکریپت Sweet Alert گفتم که کاربر به صفحه دیگر هدایت بشه آیا در اکشن متد باید
return RedirectToAction("allPerson") رو بردارم و اگر بردارم درست عمل نمیکنه.لطفا راهنمایی کنید.
کدهای بخش View :
///کدهای ویو
@if (ViewData.ModelState.IsValid)
{
<button class="btn btn-info w-25 mt-2 mb-4 " id="btn-submit-btn" type="submit">ثبت پرسنل</button>
}
else
{
<button class="btn btn-info w-25 mt-2 mb-4 " type="submit">ثبت پرسنل</button>
}
//// swal کدهای
<script>
$('#btn-submit-btn').click(function () {
swal({
title: "ارسال نامه",
text: "نامه شما با موفقیت ارسال شد",
type: 'success',
showCancelButton: false,
allowOutsideClick: false,
confirmButtonColor: "green",
confirmButtonText: "باشه"
}).then(function () {
window.location.href = "/Home/allPerson";
});
});
</script>
کدهای بخش کنترلر :
[HttpPost]
public IActionResult submitPersons(Person person ,String newPersonCartMlieImagePath, String newPersonShnasnameeImagePathName, String newPersonImagePathName, String newPersonBieemeDacumenPath)
{
if (ModelState.IsValid)
{
var proMapped = _mapper.Map<Person>(person);
proMapped.PersonImage = newPersonImagePathName;
proMapped.PersonShnasnamee = newPersonShnasnameeImagePathName;
proMapped.PersonCartMlie = newPersonCartMlieImagePath;
proMapped.PersonBieemeDacument = newPersonBieemeDacumenPath;
proMapped.PersonState = true;
_context.Add(proMapped);
_context.SaveChanges();
return RedirectToAction("allPerson");
}
ViewBag.pro = _context.Projects.ToList();
return View("submitPerson", person);
}
با سلام
شما یه Button گذاشتی که اصلاً هیچ ارتباطی بین اون و کنترلر نداره . و فقط قراره یه Message رو نشون بده .
احساس می کنم شما مشکل اصلیتون توی جی کوئری و استفاده از ایجکس هست. چون شما توی متن سوال گفتید میخواید اگر مدل شما معتبر بود یک پیغام نمایش داده بشه. خب نکته اول اینکه اگر شما میخواید مدلتون سمت سرور اعتبارسنجی بشه باید توسط دستورات Ajax مدل رو به کنترلر ارسال کنید و در اونجا توسط دستور زیر اعتبارسنجی رو انجام بدید. در کدهایی که قرار دادید هیچ نشانه ای از استفاده از ایجکس دیده نمیشه !!!
if (ModelState.IsValid) {
//...
}
ارسال اطلاعات به سمت کنترلر توسط دستورات ایجکس
اگر هم قصد دارید مدل خودتون رو سمت کلاینت اعتبارسنجی کنید (که البته زیاد پیشنهاد نمیشه) خب دیگه در این صورت اصلا نیازی به دستورات موجود در کنترلر که نوشتید نیست. چون شما مدلتون رو در سمت کلاینت اعتبار سنجی میکنید و اگر صحیح بود یک پیغام گرافیکی نمایش می دید و کاربر رو به سمت مسیر خاصی که نیاز داشتید هدایت می کنید.
<script>
$('#btn-submit-btn').click(function () {
if (("#txt1").val() == '' )
{
alert('مدل شما معتبر نیست');
return false;
}
swal({
title: "ارسال نامه",
text: "نامه شما با موفقیت ارسال شد",
type: 'success',
showCancelButton: false,
allowOutsideClick: false,
confirmButtonColor: "green",
confirmButtonText: "باشه"
}).then(function () {
window.location.href = "/Home/allPerson";
});
});
</script>
در مثال بالا فرض شده که txt1 یک input می باشد که در مدل داده ای شما موجود هست (چون شما هیچ اشاره ای به مدل داده ای خودتون نکردید). بنابراین کنترل کردیم که مقدارش خالی نباشه و اگر خالی بود یک پیغام نمایش دادیم.
نکته : ببینید اگر شما میخواید اطلاعات رو توسط ایجکس به سمت سرور ارسال کنید و در سمت سرور اعتبارسنجی کنید یا حتی اطلاعاتی در دیتابیس ثبت یا ویرایش کنید دقت کنید که return شما باید به صورت زیر باشد :
return json (new { status = "ok"});
- آموزش استفاده از SignalR در Asp.net Core با مثال عملی
- ادغام چند گزارش استیمول سافت بصورت پی دی اف در یک فایل
- نحوه تغییر استایل کامپوننت select2 چگونه است ؟
- چگونه امنیت پروژه را در Asp.net Core افزایش دهیم ؟
- ارسال پارامتر در دستور window.open جی کویری
- ارسال پارامتر از طریق جاوااسکریپت با کلیک روی تگ a
- خطای 500 زمان اجرا شدن پروژه روی هاست
- کویری نویسی در استیمول سافت جهت فیلتر اطلاعات
- نمایش صفحه در پنجره جدید با کلیک روی لینک (تگ a) در Asp
- افزودن مقادیر به صورت دستی به List دریافت شده از ریپازیتوری
- کار با CkEditor با قابلیت آپلود عکس
- خطا در ایجاد migration در Asp.net core
- تفاوت های Asp.net core و Asp.net mvc چیه؟
- دلیل اسپم شدن ایمیل های ارسالی از سرور
- نحوه لایه بندی پروژه Core و اضافه کردن به IIS
- ارسال ایمیل در Asp.net core
- آیا میشه در mvc core از کامپونت استفاده کرد
- آپلود فایل در Asp.net core چگونه است؟
- حذف کامل یک رکورد در جدول ریلیشن شده
- اشکال در آپلود فایل ویدیو در mvc core 2